* Moodle 1.9 [#m55ef079]

Moodle 1.5 については [[Moodle]] 参照。
Moodle 1.6 については [[Moodle 1.6]] 参照。
Moodle 1.7 については [[Moodle 1.7]] 参照。
Moodle 1.8 については [[Moodle 1.8]] 参照。

三重大学版が http://portal.mie-u.ac.jp/src/ あるいはその中に書いてあるSubversionレポジトリからダウンロードできる。Subversionのほうが常に新しい。

[[PHP]] と,[[MySQL]] または [[PostgreSQL]] が必要。
以下では Linux + Apache + MySQL + PHP の環境でインストール。
CentOS 4.xやVine Linux 4.xで利用実績あり。

CentOS 4.xについては,httpd,php,mysql,php-mysql,gd,php-gd,php-mbstring がなければ yum install で入れておく。

OSのインストールの際にファイアウォールとSELinuxがデフォルトでオンになっていることがあるが,これはオフにしておかないと後で面倒なことになる。ファイアウォールは iptables デーモンを切ればよい。SELinux は setenforce 0 でとりあえず切れる。ずっと切るには /etc/selinux/config に SELINUX=disabled と書き込む。

** Apache [#zebfe6fb]

DirectoryIndex に index.php が含まれることを確認。

Apache 2.x の場合,httpd.conf に必ず AcceptPathInfo on を入れる。

** MySQL [#iaec6900]

MySQL 4.1.16以上が必要。

次のようにしてデータベースを作っておく(データベース名 moodle,ユーザ名 moodleuser,Webサーバのホスト名 hostname,パスワード himitsu の場合)。

 mysql --default-character-set=utf8 -u root -p
 create database moodle default character set utf8 collate utf8_unicode_ci; 
 grant select,insert,update,delete,create,create temporary tables,drop,index,alter on moodle.* 
   to moodleuser@'hostname' identified by 'himitsu'; 
 quit 

Apache と MySQL が同居する場合は 'hostname' は localhost でよい。
そうでない場合は 'oku' あるいは 'oku.edu.mie-u.ac.jp'
のようにする(単に 'oku' とするのは /etc/hosts に oku が oku.edu.mie-u.ac.jp より先に書いてある場合)。

** PHP [#h73539e5]

php.ini は基本的にデフォルトのままでいい。日本語関係の設定をするなら次のようにする:

 default_charset = UTF-8
 mbstring.language = Japanese
 mbstring.internal_encoding = UTF-8
 mbstring.http_input = pass
 mbstring.http_output = pass

Moodle.org のサイトには次のようにすると書かれている:

 magic_quotes_gpc = 1      (推奨)
 magic_quotes_runtime = 0  (必ず)
 file_uploads = 1
 session.auto_start = 0
 session.bug_compat_warn = 0

しかしうちはデフォルトのまま magic_quotes_gpc = off で使っている。
このほうが安全。

ファイルのアップロードの最大サイズを php.ini で指定する:

 upload_max_filesize = 100M
 post_max_size = 100M

メモリ制限は多めに設定(少なくとも40M):

 memory_limit = 128M

** Moodle [#vc6bf848]

Moodle をダウンロードして /var/www/html 以下に展開(以下では /var/www/html/moodle)。
これは当然ながら所有者は apache 以外にして,管理人以外には書き込み権限を与えない。

データ用ディレクトリを /var/www/html の外に設定。
以下では /var/www/moodledata とする。
ここは apache が読み書きできるようにする。
アップロードされたファイルはここに入る。

http://サーバ名/moodle/ をアクセスする(http://サーバ名/moodle/install.php にリダイレクトされる)。

質問に答えていけば設定ファイル config.php が作られるが,moodle ディレクトリに apache が書き込めないので,表示された config.php をコピーしてエディタにペーストし,moodle ディレクトリに保存する。
その際,

 $CFG->unicodedb = true;
 $CFG->unicodecleanfilename = true;

を追加する。
を追加する。なお,パスワードポリシーが1.9.7あたりから急に厳しくなったので,それがうざい場合は

 $CFG->passwordpolicy = false;

と書いておく(このあたりのことは http://moodle.org/mod/forum/discuss.php?d=144857 参照)。
さらに,パスワードの保存方式が従来の単純なMD5からsaltを使う方式に変わったが,それに対応したくない場合

 $CFG->passwordsaltmain = '...';

の行をコメントアウトする。

質問は「続く」でたくさんのページがあるが必ず最後まで答える(自動運転も可能)。
質問中でURLが http://.../moodle のようになるが最後に / を補わないこと。

途中で「「日本語(ja)」言語パックをダウンロードする」ボタンが現れるが,三重大学版はここは何もしない。
詳細設定の画面は例えば次のようにする:

 lang: 日本語(ja)
 country: 日本
 allowcoursethemes: Yes
 sessioncookiepath: /moodle/  ←Moodleをインストールしたパス
 sitemailcharset: ISO-2022-JP

あとは http://サーバ名/moodle/ をアクセスするだけ。

動作確認したら cron を設定する。
まず http://サーバ名/moodle/admin/cron.php をブラウザで見てうまく働くことを確認。
よければ一般ユーザでいいから crontab -e で次のように設定。

 */5 * * * * wget -q -O /dev/null http://サーバ名/moodle/admin/cron.php

** 既存Moodleからの移行 [#e766efb2]

念のためバックアップ:

 mysqldump -u root -p moodle >moodle.sql

ソースを上書きし,管理者でMoodleにログインするとデータベースの更新が始まる。php.ini の max_execution_time に十分大きな値をセットしておかないと途中でタイムアウトする。

既存Moodleを残して別のMoodleに全データをインポートするには,上のようにして作ったバックアップを

 mysql --default-character-set=utf8 -u root -p
 # データベース newmoodle を作成
 use newmoodle;
 show tables;  # データベースが空であることを確認
 source moodle.sql # これでデータがコピーされる

元のMoodleで設定していた sessioncookie と sessioncookiepath を変更する必要がある場合は,
次のようにすれば強制的に変えられる:

 update mdl_config set value='新しいクッキー名' where name='sessioncookie';
 update mdl_config set value='/新しいパス/' where name='sessioncookiepath';